home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / hard / hack / ps2m.readme < prev    next >
Text File  |  2001-05-03  |  8KB  |  199 lines

  1. Short:    Ultimate Amiga PS/2 WheelMouseController
  2. Author:   rdc@mindless.com
  3. Uploader: rdc@mindless.com
  4. Version:  1.3
  5. Type:     hard/hack
  6.  
  7. Amiga PS/2 Wheel Mouse Controller - new version:
  8.  
  9. - corrected bug in reference PCB design
  10.   made by Marc SAVART <sil51@ifrance.com>
  11.  
  12.  
  13. Advantages of this controller:
  14.  
  15. - full open source under GPL
  16.   (General Public License, text of license included)
  17. - linear movement interpolation: mouse movements will be
  18.   ideal smooth at any screen frame rates
  19. - MMB (Middle Mouse Button) support
  20. - detection of Amiga mouse counters overrun
  21.   (127 pixels per frame for DblPAL 48Hz)
  22. - full Plug'n'Play support:
  23.   hotswap - you can change mouse "on the fly"
  24. - mouse hangs detection: controller checks mouse every
  25.   2 seconds and will reset it if mouse doesn't reply
  26. - support of popular Microsoft Intellimouse wheel protocol
  27.   (for example, Genius NetScroll)
  28. - fully compatible with Amiga NewMouse wheel standard
  29. - fully compatible with WheelBusMouse software
  30. - you can simultaneously use mouse & 2 joysticks
  31. - no "calibration" requirements
  32. - wheel works in any screen mode
  33. - horizontal scrolling even on one-wheel mouse
  34. - very low CPU load in wheel mode
  35. - most advanced Amiga PS/2 mouse controller :-)
  36.  
  37.  
  38. More detailed info:
  39.  
  40. - detection of Amiga mouse counters overrun:
  41.  
  42.   Amiga has only one-byte signed counters for mouse, and AmigaOS
  43.   checks them only one time per vblank.  This means that mouse may
  44.   move only 127*VBlankFreq pixels per second (6096 pixels per
  45.   second for default DblPAL).  If this value was overran, AmigaOS
  46.   can't detect true movement of mouse and pointer will disorderly
  47.   jump.  For correct this, my PS/2 controller limits movement to
  48.   maximum 6000 pixels per second.  If mouse moves faster, movement
  49.   will be remembered and executed at 6000 pixels per second.
  50.  
  51.   Slower movements will be always executed at real speed.
  52.  
  53. - linear movement interpolation:
  54.  
  55.   As we know, RS-232C (aka "COM") mice at PeeCee are extremely
  56.   poor quality - mouse pointer with them doesn't move, it jumps.
  57.   It is because generic 3-button RS-232C mouse reports about
  58.   movement only 25 times per second.  PS/2 mice work better - all
  59.   of them can report about state 80 times per second, and most of
  60.   them (excluding 5-button mice) can report 200 times per second.
  61.   But it is not an ideal because refresh rate of mouse (for
  62.   example, 80fps of Genius NetScroll Optical) interferes with
  63.   similar refresh rate (for example, 72Hz of Super72).  For correct
  64.   this, my controller moves "virtual Amiga mouse" smoothly.  If
  65.   user moves PS/2 mouse at 500 pixels per second, Amiga will get
  66.   from my PS/2 controller true 500 counts per second, with true
  67.   2-milliseconds intervals - you can get oscilliscope and check it.
  68.  
  69.   Most another PeeCee-mouse-controllers don't have similar feature,
  70.   and move "virtual Amiga mouse" by "count packets" after every
  71.   byte packet from PeeCee-mouse.  For example, if user moves 
  72.   RS-232C mouse at 500 pixels per second, and mouse sends 25
  73.   reports per second, Amiga will get 25 packets of 20 fast (some
  74.   microsecond between counts) counts per second, with approx.40
  75.   milliseconds interval between packets.  If user has 75Hz screen
  76.   refresh rate, mouse pointer will update only every three vblank,
  77.   and jumps of pointer (in comparison with ideally smooth Amiga
  78.   mouse) will only incline user to suicide using mouse cord :-)
  79.  
  80.   My PS/2 controller is free from this bug.  Theoretically I can do
  81.   even smooth RS-232C mouse controller, but is it nonsense because
  82.   of RS-232C mice death.  Modern optical mice already don't have
  83.   RS-232C versions, but there is no modern mice without PS/2 version.
  84.  
  85. - mouse hangs detection:
  86.  
  87.   Some Chinese mice are very cheap and very unstable.  Integrated
  88.   to mouse controller can hang and even don't response to reset
  89.   command.  These mice on PeeCee require reconnect (and sometimes
  90.   reboot because of not-PnP initial nature of PeeCee).  My
  91.   controller in case of 2-seconds silence (user doesn't touch
  92.   mouse) asks mouse about state.  If mouse doesn't respond,
  93.   controller will automatically take away power souce for some
  94.   time.
  95.  
  96. - full Plug'n'Play support:
  97.  
  98.   Because of previous feature, controller will detect mouse
  99.   replacement.  Unlike PeeCee, wheel function (or it's absence)
  100.   will be detected automatically.  You don't need to replace
  101.   drivers if you change mouse "on the fly" :)
  102.  
  103. - support of popular Microsoft Intellimouse wheel protocol
  104.  
  105.   Microsoft (for this paragraph it is a company name, not an abuse)
  106.   instead of it's normal practice to hide all details, published
  107.   protocol of wheel mouse.  It has two "layers": protocol of wheel
  108.   mouse, and protocol of 5-button wheel mouse.  There are many
  109.   Microsoft Intellimouse compatible devices (for example, Genius
  110.   NetScroll Optical), and all of them will work with wheel at my
  111.   controller.  Unfortunately, protocol of my Genius mouse differs
  112.   from Microsoft 5-button protocol, and I don't support 5 buttons
  113.   yet.
  114.  
  115.   I don't have info about Intellimouse compatibility of other
  116.   devices.  Don't ask me.
  117.  
  118. - fully compatible with Amiga NewMouse wheel standard
  119.  
  120.   Amiga NewMouse standard describes an internal AmigaOS protocol
  121.   for wheel mice.  There are some NewMouse-compatible sofware,
  122.   MUIWheel and Directory Opus Magellan for example.  All this
  123.   software will work with my PS/2 controller.
  124.  
  125. - fully compatible with WheelBusMouse software
  126.  
  127.   WheelBusMouse is a software driver early released by me, that
  128.   allows to use any wheel mouse without controller (but you must
  129.   alter the mouse).  My PS/2 controller is fully electrically
  130.   compatible with WBM package.  This means that you can install
  131.   WBM driver and use altered wheel mouse instead of soldering
  132.   PS/2 controller.  Or you even can connect second mouse and use
  133.   it as a scroller :-)
  134.  
  135. - you can simultaneously use mouse & 2 joysticks
  136.  
  137.   You can use joystick(s) in parallel with mouse: pressing "Fire"
  138.   of any joystick will disable mouse function on this port.
  139.  
  140.   If you press "Fire" on Joy1 (wheel function) - wheel will be
  141.   reseted to initial phase (don't touch wheel during game).
  142.  
  143.   If you press "Fire" on Joy2 (mouse port) - mouse will be disabled
  144.   at all.  For protect against probable mouse movement, mouse will
  145.   be enabled only after any mouse button pressing.
  146.  
  147. - no "calibration" requirements
  148.  
  149.   My controller doesn't use analog inputs and doesn't require
  150.   calibration (like Mroocheck interface from Elbox).
  151.  
  152. - wheel works in any screen mode
  153.  
  154.   Wheel works in any screen mode - you can simultaneously use
  155.   wheeled applications on PAL, DblPAL, Super72 or any other
  156.   screens (unlike Mroocheck with horizontal rate setting).
  157.  
  158. - horizontal scrolling even on one-wheel mouse
  159.  
  160.   You can switch vertical scrolling to horizontal by qualifier
  161.   pressing - like MMB in Mroocheck, but you can select any
  162.   qualifier key or joystick/mouse button.  For example - I use
  163.   left ALT.
  164.  
  165. - very low CPU load in wheel mode
  166.  
  167.   This controller doesn't use any software emulated serial protocols
  168.   like CD32 joypad and analog-to-digital conversions like Mroocheck.
  169.   It reduces slow chipset reading/writing cycles number to absolute
  170.   minimum, and this wheel solution is the fastest ever made for Amiga.
  171.  
  172. - most advanced Amiga PS/2 mouse controller.
  173.  
  174.   Do you doubt in this yet? :) ;) =)
  175.  
  176.  
  177. All instructions included.  Have fun!
  178.  
  179.  
  180. ============================= Archive contents =============================
  181.  
  182. Original  Packed Ratio    Date     Time    Name
  183. -------- ------- ----- --------- --------  -------------
  184.      599     347 42.0% 07-Apr-01 13:02:26 +newmouse.h
  185.      146      94 35.6% 07-Apr-01 16:14:48 +SCOPTIONS
  186.     5594    1982 64.5% 07-Apr-01 17:51:30 +wbm.c
  187.    18009    7015 61.0% 29-Mar-01 09:59:00  gpl.txt
  188.    15336   14769  3.6% 27-Apr-01 00:36:36 +ps2m_components.png
  189.     7935    7888  0.5% 27-Apr-01 00:37:16 +ps2m_solderside.png
  190.     1049     458 56.3% 04-Jun-00 23:05:42 +16f876.i
  191.     4339     996 77.0% 09-Jul-00 18:00:08 +macros.i
  192.     9120    2866 68.5% 07-Apr-01 18:40:54 +ps2m.asm
  193.     2432    1008 58.5% 07-Apr-01 18:40:56  ps2m.hex
  194.     2934    2934  0.0% 26-Mar-01 17:22:30  ps2m.png
  195.    10844    4488 58.6% 27-Apr-01 00:41:16  ps2m_manual
  196.     1624    1065 34.4% 07-Apr-01 17:51:42  wbm
  197. -------- ------- ----- --------- --------
  198.    79961   45910 42.5% 27-Apr-101 00:33:34   13 files
  199.